package tables; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; import subjects.ProductStock; public class StockTableModel extends AbstractTableModel { private String[] columnNames = { "Name", "Price", "Quantity (kg)" }; private ArrayList<ProductStock> products; public StockTableModel() { products = new ArrayList<ProductStock>(); } public StockTableModel(ArrayList<ProductStock> products) { this.products = products; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return products.size(); } public String getColumnName(int column) { return columnNames[column]; } @Override public Object getValueAt(int row, int column) { ProductStock product = getProduct(row); switch (column) { case 0: return product.getProductName(); case 1: return product.getProductPrice(); case 2: return product.getQuantity(); } return product; } public ProductStock getProduct(int row) { return products.get(row); } public void addProduct(ProductStock product) { insertProduct(getRowCount(), product); } public void insertProduct(int row, ProductStock product) { products.add(row, product); fireTableRowsInserted(row, row); } public void removeProduct(int row) { products.remove(row); fireTableRowsDeleted(row, row); } }